home *** CD-ROM | disk | FTP | other *** search
/ Collection of Tools & Utilities / Collection of Tools and Utilities.iso / basic / ubas830.zip / UB.MAC < prev    next >
Text File  |  1990-11-05  |  3KB  |  261 lines

  1. ;UB.MAC
  2. ;    MACRO LIBRARY FOR
  3. ;    UBASIC USER MAKING ROUTINE
  4. ;
  5.  
  6. SYSTBL    EQU    0000H
  7.  
  8. LSIZE    EQU    0040H    ;özù±Æ╖ò╧Éöé╠ BYTE Éöé¬Åæéóé─éáéΘ
  9. LLSIZE    EQU    0042H    ;özù±ô┴ò╩ò╧Éöé╠ BYTE Éöé¬Åæéóé─éáéΘ
  10. CALCSP    EQU    0044H    ;îvÄZâXâ^âbâNé╠â|âCâôâ^é¬éáéΘ
  11. POINT   EQU     0046H   ;POINT
  12. ARRAYHEADSEG    EQU    2    ;özù±é╠HEADERò¬é╠SEGMENT
  13.  
  14. ;bit masks for attribute word
  15.  
  16. attribmask        equ    0111110000000000b
  17. attribmaskhigh        equ    01111100b
  18. lenmask            equ    0000001111111111b
  19. lenmaskhigh        equ    00000011b
  20. pointmask        equ    0100000000000000b
  21. pointmaskhigh        equ    01000000b
  22. complexmask        equ    0010000000000000b
  23. complexmaskhigh        equ    00100000b
  24. ratmask            equ    0001000000000000b
  25. ratmaskhigh        equ    00010000b
  26. stringmask        equ    0000100000000000b
  27. stringmaskhigh        equ    00001000b
  28. packmask        equ    0000010000000000b
  29. packmaskhigh        equ    00000100b
  30. polymask        equ    0000110000000000b
  31. polymaskhigh        equ    00001100b
  32. modpolymask        equ    0001100000000000b
  33. modpolymaskhigh        equ    00011000b
  34.  
  35. ; parameter address
  36.  
  37. V1    EQU    0080H
  38. V2    EQU    0084H
  39. V3    EQU    0088H
  40. V4    EQU    008CH
  41. V5    EQU    0090H
  42. V6    EQU    0094H
  43. V7    EQU    0098H
  44. V8    EQU    009CH
  45. V9    EQU    00A0H
  46. V10    EQU    00A4H
  47. V11    EQU    00A8H
  48. V12    EQU    00ACH
  49. V13    EQU    00B0H
  50. V14    EQU    00B4H
  51. V15    EQU    00B8H
  52. V16    EQU    00BCH
  53.  
  54. V17    EQU    00C0H
  55. V18    EQU    00C4H
  56. V19    EQU    00C8H
  57. V20    EQU    00CCH
  58. V21    EQU    00D0H
  59. V22    EQU    00D4H
  60. V23    EQU    00D8H
  61. V24    EQU    00DCH
  62. V25    EQU    00E0H
  63. V26    EQU    00E4H
  64. V27    EQU    00E8H
  65. V28    EQU    00ECH
  66. V29    EQU    00F0H
  67. V30    EQU    00F4H
  68. V31    EQU    00F8H
  69. V32    EQU    00FCH
  70.  
  71. AR0    EQU    0020H
  72. AR1    EQU    0022H
  73. AR2    EQU    0024H
  74. AR3    EQU    0026H
  75. AR4    EQU    0028H
  76. AR5    EQU    002AH
  77. AR6    EQU    002CH
  78. AR7    EQU    002EH
  79.  
  80. ;FUNCTION CODE
  81.  
  82. SGN    EQU    1
  83. LEN    EQU    2
  84. BIT    EQU    3
  85. GCD    EQU    4
  86. SQR    EQU    5
  87. ISQR    EQU    6
  88. FIX    EQU    7
  89. KRO    EQU    8
  90. SIN    EQU    9
  91. COS    EQU    10
  92.  
  93. EXP    EQU    11
  94. LOG    EQU    12
  95. PAI    EQU    13
  96. PRM    EQU    14
  97. MOB    EQU    15
  98. EUL    EQU    16
  99. PRMDIV    EQU    17
  100.  
  101. MODPOW    EQU    26
  102. MODINV    EQU    27
  103. INT    EQU    28
  104. ALEN    EQU    29
  105. NXTPRM    EQU    30
  106.  
  107. MAX    EQU    31
  108. MIN    EQU    32
  109. SFT    EQU    33
  110.  
  111.  
  112. MOV_AX    MACRO    PARAM
  113.     DB    2EH        ;CS:
  114.     DB    0A1H        ;MOV AX,[PARAM]
  115.     DW    PARAM
  116.     ENDM
  117.  
  118. MOV_BX    MACRO    PARAM
  119.     DB    2EH        ;CS:
  120.     DB    8BH        ;MOV BX,[PARAM]
  121.     DB    1EH
  122.     DW    PARAM
  123.     ENDM
  124.  
  125. LDS_SI    MACRO    PARAM
  126.     DB    2EH        ;CS:
  127.     DB    0C5H,36H
  128.     DW    PARAM
  129.     ENDM
  130.  
  131. LES_DI    MACRO    PARAM
  132.     DB    2EH        ;CS:
  133.     DB    0C4H,3EH
  134.     DW    PARAM
  135.     ENDM
  136.  
  137. CALL_F    MACRO    PARAM
  138.     DB    36H        ;SS:
  139.     DB    0FFH,1EH
  140.     DW    PARAM
  141.     ENDM
  142.  
  143.  
  144.  
  145. @LET    MACRO    DEST,SORC
  146.     LDS_SI    SORC
  147.     LES_DI    DEST
  148.     MOV    CX,[SI]
  149.     AND    CX,lenmask
  150.     INC    CX
  151.     CLD
  152.     REP    MOVSW
  153.     ENDM
  154.  
  155.  
  156. @PUSH    MACRO    SORC
  157.     LDS_SI    SORC
  158.     CALL_F    SYSTBL+4
  159.     ENDM
  160.  
  161.  
  162. @POP    MACRO    DEST
  163.     LES_DI    DEST
  164.     CALL_F    SYSTBL+8
  165.     ENDM
  166.  
  167.  
  168. @ADD    MACRO
  169.     CALL_F    SYSTBL+32    ;8*4
  170.     ENDM
  171.  
  172.  
  173. @SUB    MACRO
  174.     CALL_F    SYSTBL+36    ;9*4
  175.     ENDM
  176.  
  177.  
  178. @MUL    MACRO
  179.     CALL_F    SYSTBL+40    ;10*4
  180.     ENDM
  181.  
  182.  
  183. @DIV    MACRO
  184.     CALL_F    SYSTBL+44    ;11*4
  185.     ENDM
  186.  
  187.  
  188. @IDIV    MACRO
  189.     CALL_F    SYSTBL+48    ;12*4
  190.     ENDM
  191.  
  192.  
  193. @MOD    MACRO
  194.     CALL_F    SYSTBL+52    ;13*4
  195.     ENDM
  196.  
  197.  
  198. @P2    MACRO
  199.     CALL_F    SYSTBL+56    ;14*4
  200.     ENDM
  201.  
  202.  
  203. @FUNC    MACRO    FUNCNAME
  204.     MOV    AX,SS
  205.     MOV    DS,AX
  206.     MOV    ES,AX
  207.     MOV    AL,FUNCNAME
  208.     CALL_F    SYSTBL
  209.     ENDM
  210.  
  211. @DUMPUSH    MACRO
  212.     MOV_BX    CALCSP
  213.     MOV_AX    LLSIZE
  214.     SUB    SS:[BX],AX
  215.     ENDM
  216.  
  217. @DUMPOP    MACRO
  218.     MOV_BX    CALCSP
  219.     MOV_AX    LLSIZE
  220.     ADD    SS:[BX],AX
  221.     ENDM
  222.  
  223.  
  224. RETF    MACRO
  225.         DB      0CBH
  226.         ENDM    
  227.  
  228.  
  229. RETURN    MACRO
  230.     MOV    AX,SS
  231.     MOV    DS,AX
  232.     MOV    ES,AX
  233.     RETF            ;DB    0CBH
  234.  
  235. CODE    ENDS
  236. END    START
  237.  
  238.     ENDM
  239.  
  240.  
  241. JMPS    MACRO    DEST
  242.     JMP    SHORT DEST
  243.     ENDM
  244.  
  245. JMPE    MACRO    DEST
  246.     LOCAL    LAB
  247.     JNE    LAB
  248.     JMP    DEST
  249. LAB:
  250.     ENDM
  251.  
  252.  
  253. .LIST
  254.  
  255. CODE    SEGMENT
  256.         ASSUME  CS:CODE,DS:CODE
  257.  
  258.         ORG     100H
  259. START:
  260.  
  261.